#ifndef  xParticlePlug_h_h_h_h_h
#define xParticlePlug_h_h_h_h_h

#include "XMain.h"
#include "xParticleEffectPlug.h"


namespace XE
{
	typedef std::vector<xParticleEffectFactory*> ParticleEffectFactoryVector;
	typedef std::vector<xParticleRenderFactory*> ParticleRenderFactoryVector;
	typedef std::vector<xParticleEmitterFactory*>ParticleEmitterFactoryVector;

	class  xParticlesPlug :public xPlug
	{
	public:

		xParticlesPlug();
		~xParticlesPlug();


		virtual bool InstallPlug();
		virtual bool UnInstallPlug();

	protected:

		void CreateEffectFactory();
		void DestoryEffectFactory();

		void CreateRenderFactory();
		void DestoryRenderFactory();

		void CreateEmitterFactory();
		void DestoryEmitterFactory();


		ParticleEffectFactoryVector m_EffectFactoryVector;
		ParticleRenderFactoryVector m_RenderFactoryVector;
		ParticleEmitterFactoryVector m_EmitterFactoryVector;



	};


}












#endif